In a non-volatile memory which is typified by a NAND flash memory, information is stored by the amount of charge stored in a floating gate of a memory cell. The stored information can be read by applying an appropriate voltage (read voltage) to the memory cell. The read voltage is detected from the shape of the distribution of the threshold voltage of each memory cell.
However, it has been known that the physical properties of the non-volatile memory (memory cell) vary depending on the temperature. Therefore, in the related art, when the read voltage is detected, temperature correction is performed to correct the distribution according to the temperature of the non-volatile memory or the ambient temperature of the non-volatile memory. However, in the temperature correction according to the related art, there is a possibility that it is not possible to obtain an appropriate read voltage.